package com.yyy.entity;

import lombok.Data;

import javax.validation.constraints.NotNull;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;

/**
 * @author com.yyy
 * @Date 2020-09-12 15:48
 * @Email yangyouyuhd@163.com
 * @apiNote 消息者封装实体
 */
@Data
public class MessageHandler {
    /**
     * 所属类实例
     */
    private Object target;
    /**
     * 消费者方法实例
     */
    private Method method;
    /**
     * 正则校验的
     */
    private Pattern pattern;
    /**
     * 形参的泛型名
     */
    private String genericClazzName;
    /**
     * 指定的队列名
     */
    @NotNull
    private String queueName;
    /**
     * 形参列表的参数类型和索引位置的映射
     */
    private Class<?>[] paramTypeIndexMappingArr;
    /**
     * Message形参的索引位置
     */
    private Integer msgIndex;

    public MessageHandler(Class<?>[] paramTypeIndexMappingArr) {
        this.paramTypeIndexMappingArr = paramTypeIndexMappingArr;
    }
}
